package com.dotstone.chipism.activity;

import java.util.ArrayList;
import java.util.List;

import com.dotstone.chipism.R;
import com.dotstone.chipism.adapter.DeviceSelectionAdapter;
import com.dotstone.chipism.bean.Device;
import com.dotstone.chipism.bean.Scene;
import com.dotstone.chipism.util.DeviceManager;
import com.dotstone.chipism.util.ShareManager;
import com.dotstone.chipism.util.ToastShow;
import com.dotstone.chipism.view.BlurBehind;
import com.dotstone.chipism.view.OnBlurCompleteListener;
import com.dotstone.chipism.view.slidingfragmenu.BarUtils;

import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DeviceAuthorActivity extends BaseActivity {
	private LinearLayout mBackL;
	private Button mNextB;
	private ListView mDeviceL;
	private ListView mWlanL;
	private TextView tv_statusBar_mian;
	private List<Device> mDevices = new ArrayList<Device>();
	private List<Device> mWlans = new ArrayList<Device>();
	private DeviceSelectionAdapter mAdapter1;
	private DeviceSelectionAdapter mAdapter2;
	private List<Device> mSelects = new ArrayList<Device>();

	@Override
	public void widgetClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.back_layout:
			finish();
			break;
		case R.id.nextstep:
			for (int i = 0; i < mDevices.size(); i++) {
				if(mDevices.get(i).isSelected()){
					mSelects.add(mDevices.get(i));
					Log.i("wmy", "已选择"+mDevices.get(i).getDeviceName());
				}
			}
			for (int i = 0; i < mWlans.size(); i++) {
				if(mWlans.get(i).isSelected()){
					mSelects.add(mWlans.get(i));
					Log.i("wmy", "已选择"+mWlans.get(i).getDeviceName());
				}
			}
			List<Scene> scenes = ShareManager.getInstance().getmScenes();
			if(scenes.size()==0&&mSelects.size()==0){
				ToastShow.Show(getApplicationContext(), getString(R.string.share_no_scene_device));
				return;
			}
			ShareManager.getInstance().setmDevices(mSelects);
			BlurBehind.getInstance().execute(MainActivity.mainActivity,
					new OnBlurCompleteListener() {
						@Override
						public void onBlurComplete() {
							Intent intent = new Intent(DeviceAuthorActivity.this,
									AuthorConfirmActivity.class);
							intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
							startActivity(intent);
							finish();
						}
					});
			break;

		default:
			break;
		}
	}

	@Override
	public void initParms(Bundle parms) {
		// TODO Auto-generated method stub

	}

	@Override
	public View bindView() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int bindLayout() {
		// TODO Auto-generated method stub
		return R.layout.activity_device_author;
	}

	@Override
	public void initView(View view) {
		// TODO Auto-generated method stub
		BlurBehind.getInstance()
		// .withAlpha(100)
		// // .withFilterColor(Color.parseColor("#000000"))
				.setBackground(this);
		tv_statusBar_mian = $(R.id.tv_statusBar_mian);
		mBackL = $(R.id.back_layout);
		mNextB = $(R.id.nextstep);
		mNextB.setVisibility(View.VISIBLE);
		mDeviceL = $(R.id.device_lv);
		mWlanL = $(R.id.wlan_lv);
		boolVersion();
		mBackL.setOnClickListener(this);
		mNextB.setOnClickListener(this);
		mDeviceL.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1,
					int position, long arg3) {
				// TODO Auto-generated method stub
				mDevices.get(position).setSelected(
						!mDevices.get(position).isSelected());
				mAdapter1.notifyDataSetChanged();
			}
		});
		mWlanL.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1,
					int position, long arg3) {
				// TODO Auto-generated method stub
				mWlans.get(position).setSelected(
						!mWlans.get(position).isSelected());
				mAdapter2.notifyDataSetChanged();
			}
		});
		initData();
	}

	private void initData() {
		// TODO Auto-generated method stub
//		mDevices = DeviceManager.getInstance().getNoWlansDevice();
		mDevices = DeviceManager.getInstance().getRFDevice();
		mWlans = DeviceManager.getInstance().getWlans();
		mAdapter1 = new DeviceSelectionAdapter(getApplicationContext(),
				mDevices);
		mAdapter2 = new DeviceSelectionAdapter(getApplicationContext(), mWlans);
		mDeviceL.setAdapter(mAdapter1);
		mWlanL.setAdapter(mAdapter2);
	}

	@Override
	public void setListener() {
		// TODO Auto-generated method stub

	}

	@Override
	public void doBusiness(Context mContext) {
		// TODO Auto-generated method stub

	}

	public void boolVersion() {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

			Window window = getWindow();
			window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
					WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
			// 透明导航栏
//			getWindow().addFlags(
//					WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
			// 改变titlebar的高度
			int statusbarHeight = BarUtils.getStatusBarHeight(this);
			RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) tv_statusBar_mian
					.getLayoutParams();
			layoutParams1.height = statusbarHeight;
			tv_statusBar_mian.setLayoutParams(layoutParams1);
			tv_statusBar_mian.setVisibility(View.VISIBLE);

		} else {
			tv_statusBar_mian.setVisibility(View.GONE);
		}
	}

}
